package 笔试;

import java.util.Scanner;

/**
 * 数组中两个字符串的最短距离: 贪心: 对暴力枚举的优化
 * https://www.nowcoder.com/practice/2c6a0a8e1d20492f92941400036e0890
 */
public class Day2_3 {

    public static void main(String[] args) {

        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
        String s1 = in.next(), s2 = in.next();
        // prev1 标记前面 s1 出现的最近的下标
        // 同理, prev2 标记前面 s2 出现的最近的下标
        int prev1 = -1, prev2 = -1, ret = 0x3f3f3f3f;
        for (int i = 0; i < n; i++) {
            String s = in.next();
            // 进行更新, 去找前面的 s2 字符串
            if (s.equals(s1)) {
                if (prev2 != -1) {
                    // 进行更新
                    ret = Math.min(ret, i - prev2);
                }
                // s1 出现了一次, 进行更新
                prev1 = i;
            } else if (s.equals(s2)) {
                // 去找前面的 s1
                if (prev1 != -1) {
                    // 进行更新
                    ret = Math.min(ret, i - prev1);
                }
                // s2 又出现了一次, 进行更新
                prev2 = i;
            }
        }
        System.out.println(ret == 0x3f3f3f3f ? -1 : ret);
    }


}

